home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 8 / Eagles_Nest_Mac_Collection_Disc_8.TOAST / Developer Environments / MacCjr / MacC Jr / Library Folder / C Include Folder / Osmisc.h < prev    next >
Encoding:
Text File  |  1987-01-06  |  3.6 KB  |  188 lines  |  [TEXT/EDIT]

  1. // OSmisc.h
  2. // Mac OS Interface defs
  3. // © Copyright 1984 Consulair Corp, All Rights Reserved.
  4. // Portions © Copyright Apple Computer, Inc: 1982, 1983, 1984
  5. //            Stanford University, SUMEX project: 1984
  6. // Requires Macdefs.h
  7.  
  8. #ifndef OSmiscLoaded
  9.  
  10.   #ifndef MacdefsLoaded
  11.     #include "macdefs.h"
  12.     #endif
  13.     
  14. #define OSmiscLoaded
  15.  
  16. #ifdef HFSdefsLoaded
  17.   #Options E
  18.    ####You cannot include OSMisc.h and HFSDefs.h in the same file####
  19.    #endif
  20.  
  21. // finder constants 
  22.  
  23.   #define    fHasBundle 32
  24.   #define    fInvisible 64
  25.   
  26. // general queue data structure 
  27.  
  28.   struct QE
  29.     {    
  30.     struct QE *QLink;
  31.     short    QType;
  32.     char    QData[1];
  33.     };
  34.  
  35.   #define QElem struct QE
  36.   
  37.   // QType values 
  38.  
  39.     #define    VType    1
  40.     #define    IOQType    2
  41.     #define    DrvType    3
  42.     #define    EvType    4
  43.     #define    FSQType    5
  44.   
  45.   struct QH
  46.     {        // QHdr 
  47.     short    qFlags;
  48.     QElem    *qHead;
  49.     QElem    *qTail;
  50.     };
  51.   
  52.   #define QHdr struct QH
  53.   
  54.  // Pointer to a Queue Header 
  55.   
  56.   typedef   QHdr   *QHdrPtr;
  57.   
  58.  // QFlags values 
  59.   
  60.   #define    QInUse    0x80
  61.   
  62.  
  63. // Vertical Blanking Control Block Queue Element 
  64.  
  65.   struct __VB
  66.     {        // VBLCntrlBlk 
  67.     struct    __VB *qLink;
  68.     short    qType;
  69.     ProcPtr    vblAddr;    // service routine 
  70.     short    vblCount;    // for timeout 
  71.     short    vblPhase;    // phase for synchronization 
  72.     };
  73.   
  74.   #define VBLTask struct __VB
  75.  
  76. // Event queue element 
  77.   
  78.   struct __EB
  79.     {        // evCntrlBlk 
  80.     struct    __EB *evLink;
  81.     short    evType;
  82.     short    evWhat;        // remainder identical to EventRecord 
  83.     long    evMessage;
  84.     long    evWhen;
  85.     Point    evWhere;
  86.     short    evModifiers;
  87.     };
  88.   
  89.   #define evCntrlBlk struct __EB
  90.  
  91. // Driver queue element 
  92.  
  93.   struct __DQ
  94.     {        // drvQElRec 
  95.     long    flags;
  96.     struct    __DQ *qLink;
  97.     short    qType;
  98.     short    dQDrive;
  99.     short    dQRefNum;    // ref num of drvr to handle this drive 
  100.     short    dQFSID;        // file system id 
  101.     short    dQDrvSize;    // size of drive in 512 blocks (but not 1&2) 
  102.     };
  103.     
  104.   #define drvQElRec struct __DQ
  105.  
  106. // 20 bytes of system parameter area 
  107.   
  108.   struct __SP
  109.     {        // SysParmType 
  110.     long    ValidOdom;    // hi byte, validation field (0xa7) 
  111.     // lo 3 bytes, odometer 
  112.     short    PortA;        // port A config 
  113.     short    PortB;    
  114.     long    Alarm;        // alarm time 
  115.     short    Font;        // default font id 
  116.     short    KbdPrint;    // hi byte, kbd repeat 
  117.     // high nibble = thresh in 4/60ths
  118.     // low nibble = rates in 2/60ths
  119.     // low byte = print stuff
  120.     short    VolClik;    // low 3 bits of high byte = volume control
  121.     // hi nib of low byte = double time in 4/60ths
  122.     // lo nib of low byte = caret blink in 4/60ths
  123.     short    Misc;        // high byte = international specification
  124.     // MEEC CCCC PSKB FFHH
  125.     // M = english/metric
  126.     // E = extra
  127.     // C = country code
  128.     // P = paranoia level
  129.     // S = mouse scaling
  130.     // K = key click
  131.     // B = boot disk
  132.     // F = menu flash
  133.     // H = help level
  134.     };
  135.   
  136.   #define SysParmType struct __SP
  137.   typedef SysParmType * SysPPtr;
  138.   
  139.   
  140. // for Sound Driver 
  141.   // for 4-tone sound generation 
  142.   
  143.   struct Wave
  144.     {
  145.     char    s[256];
  146.     };
  147.   
  148.   #define Wave struct Wave
  149.   typedef Wave * WavePtr;
  150.   
  151.   struct __SS
  152.     {        // SoundStruct 
  153.     short    duration;
  154.     long    snd1Rate;
  155.     long    snd1Phase;
  156.     long    snd2Rate;
  157.     long    snd2Phase;
  158.     long    snd3Rate;
  159.     long    snd3Phase;
  160.     long    snd4Rate;
  161.     long    snd4Phase;
  162.     WavePtr    snd1Wave;
  163.     WavePtr    snd2Wave;
  164.     WavePtr    snd3Wave;
  165.     WavePtr    snd4Wave;
  166.     };
  167.   
  168.   #define SoundStruct struct __SS
  169.   typedef SoundStruct * SndRecPtr;
  170.   
  171.   
  172. // for date and time 
  173.   
  174.   struct Date
  175.     {        // DateArray 
  176.     short    year;
  177.     short    month;
  178.     short    day;
  179.     short    hour;
  180.     short    minute;
  181.     short    second;
  182.     short    dayOfWeek;
  183.     };
  184.   
  185.   #define Date struct Date
  186.   
  187. #endif
  188.